package com.laowang;

/**
 * @Auther laowang
 * @Date 2022/6/27
 * @Description
 */
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Qpalt {
    //全排列三（利用前缀进行字典序输出)
    ArrayList<String> news=new ArrayList<>();//新建arraylist
    public ArrayList<String> Qpl(String a,char []b)
    {
        if (a.length()==b.length)//递归出口 若字符串长度与数组b的长度相同,则加入到list中
        {
            news.add(a);
            return news;
        }
        for (int i=0;i<=b.length-1;i++)//循环加入到前缀中
        {
            char ch=b[i];
            if (!a.contains((CharSequence) String.valueOf(ch)))//如果不包含当前元素,则加入到前缀中去
            {
                Qpl(a+ch,b);
            }
        }
        return news;
    }
    public static void main(String[] args) {
        Scanner a=new Scanner(System.in);//字符串输入
        String b=a.nextLine();
        char []cc=b.toCharArray();
        Arrays.sort(cc);//对字符数组进行字典序排序
        ArrayList<String> c=new Qpalt().Qpl("",cc);
        System.out.println(c.size());
        System.out.println(c);
    }
}

